package vista.Proveedor.Otro;


import javax.swing.JFrame;
import javax.swing.JLabel;

import java.awt.Font;

import javax.swing.JPanel;
import javax.swing.border.TitledBorder;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
import javax.swing.JButton;
import javax.swing.JFormattedTextField;

import controlador.controladorAdmin;
import dto.Proveedor.DTO_FacturaProveedor;
import dto.Proveedor.DTO_Proveedor;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

import javax.swing.BorderFactory;

public class PagarFacturaProveedor {

	private JFrame frame;
	private JFormattedTextField id;
	
	private DTO_FacturaProveedor DTO;
	private JLabel cliente;
	private JButton btnBuscar;
	private JPanel panel_1;
	private JLabel lblFecha;
	private JLabel lblProveedor;
	private JLabel lblDiasEntrega;
	private JLabel lblVencimiento;
	private JButton button;
	private JButton button_1;
	private JLabel proveedor;
	private JLabel fecha;
	private JLabel vencimiento;
	private JLabel monto;
	private JLabel numero;
	private JLabel lblNumero;

	

	public JFrame getFrame() {
		return frame;
	}

	public void setFrame(JFrame frame) {
		this.frame = frame;
	}

	/**
	 * Create the application.
	 */
	public PagarFacturaProveedor() {
		initialize();
	}

	/**
	 * Initialize the contents of the frame.
	 */

	private void initialize() {
		frame = new JFrame();
		frame.setBounds(100, 100, 509, 370);
		frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		frame.getContentPane().setLayout(null);
		frame.setTitle("Aplicaciones Distribuidas - TPO Grupo: 10");
		frame.setIconImage(new ImageIcon(getClass().getClassLoader().getResource("images/box.png")).getImage());
		
		
		JLabel titulo = new JLabel("Pagar Factura Proveedor");
		titulo.setBounds(10, 11, 300, 26);
		titulo.setFont(new Font("Verdana", Font.BOLD, 20));
		frame.getContentPane().add(titulo);
		
		JPanel panel = new JPanel();
		panel.setLayout(null);
		panel.setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"), "Seleccione la factura", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		panel.setBounds(10, 48, 464, 63);
		frame.getContentPane().add(panel);
		
		JLabel lblCdigo = new JLabel("Numero");
		lblCdigo.setBounds(10, 30, 73, 14);
		panel.add(lblCdigo);
		
		btnBuscar = new JButton("Buscar");
		btnBuscar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				
				DTO = controladorAdmin.getInstancia().buscarFacturaProveedor((Integer) id.getValue());
				if (DTO != null){
					btnBuscar.setEnabled(false);
					id.setEnabled(false);
					panel_1.setVisible(true);
					button_1.setVisible(true);
					button.setVisible(true);
					DTO_Proveedor p = controladorAdmin.getInstancia().getProveedor(DTO.getIdProveedor());
					if (p != null)
						proveedor.setText(p.getRazonSocial());
					numero.setText(DTO.getNumero());
					fecha.setText(DTO.getFecha().toString());
					vencimiento.setText(DTO.getVencimiento().toString());
					monto.setText(Float.toString(DTO.getMontoTotal()));
				} else {
					//No encontro el proveedor entonces notifico que no lo encontro
					JOptionPane.showMessageDialog(null,"No se ha encontrado la factura.", "Error", JOptionPane.ERROR_MESSAGE);
					id.setText("");
				}
				
				
				
			}
		});
		btnBuscar.setBounds(149, 26, 86, 23);
		panel.add(btnBuscar);
		
		id = new JFormattedTextField();
		id.setBounds(77, 27, 59, 20);
		id.setValue(new Integer(0));
		panel.add(id);
		
		cliente = new JLabel("");
		cliente.setBounds(239, 30, 215, 14);
		panel.add(cliente);
		
		panel_1 = new JPanel();
		panel_1.setLayout(null);
		panel_1.setBorder(BorderFactory.createTitledBorder("Detalle"));
		panel_1.setBounds(10, 122, 464, 165);
		panel_1.setVisible(false);
		frame.getContentPane().add(panel_1);
		
		lblFecha = new JLabel();
		lblFecha.setText("Fecha");
		lblFecha.setFont(new Font("Verdana", Font.PLAIN, 11));
		lblFecha.setBounds(6, 77, 53, 15);
		panel_1.add(lblFecha);
		
		lblProveedor = new JLabel();
		lblProveedor.setText("Proveedor");
		lblProveedor.setFont(new Font("Verdana", Font.PLAIN, 11));
		lblProveedor.setBounds(6, 25, 78, 15);
		panel_1.add(lblProveedor);
		
		lblDiasEntrega = new JLabel();
		lblDiasEntrega.setText("Monto");
		lblDiasEntrega.setFont(new Font("Verdana", Font.PLAIN, 11));
		lblDiasEntrega.setBounds(6, 128, 78, 15);
		panel_1.add(lblDiasEntrega);
		
		lblVencimiento = new JLabel();
		lblVencimiento.setText("Vencimiento");
		lblVencimiento.setFont(new Font("Verdana", Font.PLAIN, 11));
		lblVencimiento.setBounds(6, 103, 78, 14);
		panel_1.add(lblVencimiento);
		
		proveedor = new JLabel();
		proveedor.setFont(new Font("Verdana", Font.PLAIN, 11));
		proveedor.setBounds(94, 25, 350, 15);
		panel_1.add(proveedor);
		
		fecha = new JLabel();
		fecha.setFont(new Font("Verdana", Font.PLAIN, 11));
		fecha.setBounds(94, 77, 350, 15);
		panel_1.add(fecha);
		
		vencimiento = new JLabel();
		vencimiento.setFont(new Font("Verdana", Font.PLAIN, 11));
		vencimiento.setBounds(94, 102, 350, 15);
		panel_1.add(vencimiento);
		
		monto = new JLabel();
		monto.setFont(new Font("Verdana", Font.PLAIN, 11));
		monto.setBounds(94, 128, 350, 15);
		panel_1.add(monto);
		
		numero = new JLabel();
		numero.setFont(new Font("Verdana", Font.PLAIN, 11));
		numero.setBounds(104, 51, 350, 15);
		panel_1.add(numero);
		
		lblNumero = new JLabel();
		lblNumero.setText("Numero");
		lblNumero.setFont(new Font("Verdana", Font.PLAIN, 11));
		lblNumero.setBounds(6, 51, 78, 15);
		panel_1.add(lblNumero);
		

		button = new JButton();
		button.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				frame.setVisible(false);
			}
		});
		button.setText("Cancelar");
		button.setBounds(399, 298, 75, 23);
		button.setVisible(false);
		frame.getContentPane().add(button);
		
		button_1 = new JButton();
		button_1.setText("Aceptar");
		button_1.setBounds(315, 298, 71, 23);
		button_1.setVisible(false);
		button_1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {

					boolean flag = controladorAdmin.getInstancia().pagarFacturaProveedor((Integer) id.getValue());

						if(flag){
							JOptionPane.showMessageDialog(null,"Se ha pagado la factura:", "Pagar factura realizado", JOptionPane.INFORMATION_MESSAGE);
							frame.setVisible(false);
						} else {
							JOptionPane.showMessageDialog(null,"No se ha podido pagar la factura.", "Error", JOptionPane.ERROR_MESSAGE);	
						}
		
			}
		});
		frame.getContentPane().add(button_1);
	}
}
